home *** CD-ROM | disk | FTP | other *** search
/ Aminet 40 / Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso / Aminet / misc / emu / ATUtilities.lha / ATUtilities / BASIC / ALOAD.BAS < prev    next >
BASIC Source File  |  2000-09-26  |  3KB  |  129 lines

  1. $INCLUDE "REGNAMES.INC"
  2. COLOR 14
  3.  
  4. IF CheckVector(&H49)=0 THEN
  5.  SOUND 2000,2
  6.  PRINT "FEHLER: ATUtilities File Transfer ist nicht installiert!"
  7.  GOTO ende
  8. END IF
  9. GOSUB CmdAuswertung
  10.  
  11. REG %AX,(&H6*256)
  12. CALL INTERRUPT &H49
  13. segment=REG(%ES)
  14. offset=REG(%DI)
  15.  
  16. DEF SEG = segment
  17. a1$=a1$+CHR$(0)
  18. FOR i=1 TO LEN(a1$)
  19.  POKE offset+i-1,ASC(MID$(a1$,i,1))
  20. NEXT
  21. REG %BX,1
  22. REG %AX,0
  23. CALL INTERRUPT &H49
  24. fh=REG(%CX)
  25. IF REG(%BX)=10000 THEN
  26.  a2$=a2$+CHR$(0)
  27.  FOR i=1 TO LEN(a2$)
  28.   POKE offset+i-1,ASC(MID$(a2$,i,1))
  29.  NEXT
  30.  REG %AX,(&H3C*256)
  31.  REG %CX,0
  32.  REG %DS,segment
  33.  REG %DX,offset
  34.  CALL INTERRUPT &H21
  35.  pc=REG(%AX)
  36.  IF (REG(%FLAGS) MOD 2)=0 THEN
  37.   t1=TIMER
  38.   REG %AX,(&H2*256)
  39.   REG %BX,fh
  40.   REG %CX,16384
  41.   CALL INTERRUPT &H49
  42.   bytes=REG(%BX)
  43.   p&=bytes
  44.   PRINT "Bytes bertragen:";bytes;
  45.   WHILE bytes>0
  46.    REG %AX,(&H40*256)
  47.    REG %BX,pc
  48.    REG %CX,bytes
  49.    REG %DS,segment
  50.    REG %DX,offset
  51.    CALL INTERRUPT &H21
  52.    g=REG(%AX)
  53.    IF g<>bytes THEN
  54.     SOUND 2000,2
  55.     PRINT "FEHLER: Fehler beim Schreiben der PC-Datei."
  56.     bytes=0
  57.    ELSE
  58.     REG %AX,(&H2*256)
  59.     REG %BX,fh
  60.     REG %CX,16384
  61.     CALL INTERRUPT &H49
  62.     bytes=REG(%BX)
  63.     LOCATE ,1
  64.     p&=p&+bytes
  65.     PRINT "Bytes bertragen:";p&;
  66.    END IF
  67.   WEND
  68.   t2=TIMER-t1
  69.   LOCATE ,1
  70.   PRINT p&;"Bytes wurden in";t2;"Sekunden bertragen."
  71.   REG %BX,pc
  72.   REG %AX,(&H3E*256)
  73.   CALL INTERRUPT &H21
  74.  ELSE
  75.   PRINT "FEHLER: PC-Datei "+a2$+"l„át sich nicht erstellen."
  76.  END IF
  77.  REG %BX,fh
  78.  REG %AX,(&H1*256)
  79.  CALL INTERRUPT &H49
  80. ELSE
  81.  SOUND 2000,2
  82.  PRINT "FEHLER: Amiga-Datei "+a1$+"l„át sich nicht ”ffnen."
  83. END IF
  84.  
  85. ende:
  86. COLOR 7
  87. END
  88.  
  89. CmdAuswertung:
  90. cmd$=COMMAND$+CHR$(0)
  91. cmdlen=LEN(COMMAND$)
  92. IF cmdlen>0 THEN
  93.  n=INSTR(cmd$," ")
  94.  IF n=0 THEN GOTO argf
  95.  a1$=LEFT$(cmd$,n-1)
  96.  n2=instr(n+1,cmd$,CHR$(0))
  97.  IF n2=0 THEN GOTO argf
  98.  a2$=MID$(cmd$,n+1,cmdlen-n)
  99. ELSE
  100.  GOTO argf
  101. END IF
  102. RETURN
  103.  
  104. argf:
  105. SOUND 2000,2
  106. PRINT "ALoad - Version 1.0  Copyright (C) 1993 by Thomas Dreibholz"
  107. PRINT ""
  108. PRINT "ALoad bertr„gt Dateien vom Amiga zur AT-Karte. Bei Textdateien findet"
  109. PRINT "jedoch keine Umwandlung von Zeichen statt! Sind diese Umwandlungen"
  110. PRINT "erforderlich, so sollte ARead verwendet werden."
  111. PRINT ""
  112. PRINT "Aufruf: ALoad [Amiga-Datei] [PC-Datei]"
  113. PRINT ""
  114. GOTO ende
  115.  
  116.  
  117. FUNCTION CheckVector(num) STATIC
  118.  REG %AX,(&H35*256)+num
  119.  CALL INTERRUPT &H21
  120.  segm=REG(%ES)
  121.  offs=REG(%BX)
  122.  DEF SEG = segm
  123.  IF (segm=0) OR (PEEK(offs)=207) THEN
  124.   CheckVector=0
  125.  ELSE
  126.   CheckVector=1
  127.  END IF
  128. END FUNCTION
  129.